import request from "@/utils/request";

const USER_BASE_URL = "core/sales";

const salesApi = {
  /**
   * 新增销售跟进
   *
   * @param queryParams 查询参数
   * @returns 请求结果
   */
  add(queryParams: FollowUp): Promise<any> {

    return request<any, PageResult<any>>({
      url: `${USER_BASE_URL}/follow/add`,
      method: "post",
      data: queryParams
    });
  },
  /**
   * 分页查询销售跟进
   *
   * @param queryParams 查询参数
   * @returns 请求结果
   */
  getList(queryParams: FollowUp): Promise<any> {
    return request<any, PageResult<any>>({
      url: `${USER_BASE_URL}/follow/list`,
      method: "post",
      data: queryParams
    });
  },

  /**
   * 删除跟进记录
   * @param id 删除id
   * @returns 请求结果
   */
  delete(id: number): Promise<any> {
    return request({
      url: `${USER_BASE_URL}/follow/delete`,
      method: "post",
      data: { id }
    });
  },

};

export default salesApi;

/**
 * 跟进记录接口
 */
export interface FollowUp {
  /**
   * 唯一标识符
   */
  id?: number; // int(11) NOT NULL AUTO_INCREMENT，但在TypeScript中作为接口应视为可选

  /**
   * 跟进编号
   */
  code?: string; // varchar(30) NOT NULL，但在TypeScript接口中应视为可选

  /**
   * 字首
   */
  prefix?: string; // varchar(20) DEFAULT NULL

  /**
   * 流水号
   */
  genNo?: number; // int(11) DEFAULT NULL

  /**
   * 客户编号
   */
  companyCode?: string; // varchar(30) DEFAULT NULL

  /**
   * 销售员
   */
  salesMan?: string; // varchar(30) DEFAULT NULL

  /**
   * 对方联系人
   */
  followContactPerson?: string; // varchar(30) DEFAULT NULL

  /**
   * 跟进日期（作为字符串处理）
   */
  followDate?: string; // date DEFAULT NULL，更改为string以适应TypeScript

  /**
   * 联系方式（如微信，电话，拜访等）
   */
  contactType?: string; // varchar(30) DEFAULT NULL

  /**
   * 跟进内容
   */
  remark?: string; // varchar(1000) DEFAULT NULL

  /**
   * 状态
   */
  status?: number; // int(11) DEFAULT NULL

  /**
   * 创建时间
   */
  createTime?: string; // datetime DEFAULT NULL，更改为string以适应TypeScript

  /**
   * 创建人
   */
  createName?: string; // varchar(20) DEFAULT NULL

  /**
   * 创建人ID
   */
  createUser?: number; // int(10) DEFAULT NULL

  /**
   * 修改时间
   */
  modifyTime?: string; // datetime DEFAULT NULL，更改为string以适应TypeScript

  /**
   * 修改人
   */
  modifyName?: string; // varchar(20) DEFAULT NULL

  /**
   * 修改人ID
   */
  modifyUser?: number; // int(10) DEFAULT NULL
}

